package com.tju.resource.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 物料表
 *
 * @TableNme tb_material
 */
@Data
public class TbMaterial {
    /**
     * 物料 ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 物料编号
     */
    private String matlNumber;

    /**
     * 物料名称
     */
    private String matlName;

    /**
     * 模具编号
     */
    @TableField(exist = false)
    private String sharperSerialNumber;

    /**
     * 模具名称
     */
    @TableField(exist = false)
    private String sharperName;

    /**
     * 供应商代码
     */
    private String supCode;

    /**
     * 物料批次号
     */
    private String matlPart;

    /**
     * 物料单重
     */
    private Double matlWeight;

    /**
     * 物料重量单位
     */
    private String matlUnit;

    /**
     * 预热事件
     */
    private Integer matlPrewarm;

    /**
     * 物料所在位置
     */
    private String matlPosi;

    /**
     * 物料生产日期
     */
    private Date matlProd;

    /**
     * 物料有效日期
     */
    private Date matlDate;

    /**
     * 物料来源
     */
    private String matlSrc;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 颜色
     */
    private String color;

    /**
     * 模具id
     */
    private Long sid;

    /**
     * 额定工时
     */
    private String workTime;

    /**
     * 水口添加比例
     */
    private String wdPercent;

    /**
     * 水口重量
     */
    private Double wdWeight;

    /**
     * 物料总重
     */
    private String matlTotWgh;

    /**
     * 穴数
     */
    private String holeNum;

    /**
     * 客户
     */
    private Long custId;

    /**
     * 材质
     */
    private String material;

    /**
     * 成品数量
     */
    private Long fpPcs;

    /**
     * 半成品数量
     */
    private Long spPcs;

    /**
     * 数量单位
     */
    private String pcsUnit;
    /**
     * 物料类型(0:成品,1:半成品)
     */
    private String type;

    /**
     * 起斤量
     */
    private Double minWeight;

    /**
     * 上机费
     */
    private Double compensate;

    /**
     * 订单数
     */
    @TableField(exist = false)
    private Long orderPcs;
    /**
     * 交期
     */
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date delivery;

    /**
     * 订单缺数量
     */
    @TableField(exist = false)
    private Long lackPcs;
    /**
     * 全部重量
     */
    @TableField(exist = false)
    private Double weight;
    /**
     * 需要重量
     */
    @TableField(exist = false)
    private Double needWeight;
    /**
     * 原料id
     */
    @TableField(exist = false)
    private List<TbRmMatl> rmMatlList;
    /**
     * 原材料
     */
    @TableField(exist = false)
    private List<TbRawMatl> rawMatlList;
    /**
     * 关联订单id
     */
    @TableField(exist = false)
    private Long oIdMatlId;

    /**
     * 订单完成数
     */
    @TableField(exist = false)
    private Long finishQuantity;
    /**
     * 未完成订单数
     */
    @TableField(exist = false)
    private Long unFinishQuantity;
    /**
     * 缓存寿命
     */
    @TableField(exist = false)
    private Long withholdingLife;
    /**
     * 剩余寿命
     */
    @TableField(exist = false)
    private Long residualLife;
    /**
     * 初始寿命
     */
    @TableField(exist = false)
    private Long initialLife;
}